Online services are designed so that their capacities can be expanded by adding additional computer servers. A large online service may be supported by thousands of servers or server instances, which are largely indistinguishable from each other.
Before it becomes operational, each server is provisioned with the software that is responsible for the specialized functions of the server. Provisioned software may include operating systems, utilities, drivers, applications, and so forth.
Computer servers can be provisioned manually, by technicians who supply physical media from which the servers may install selected software. Automated provisioning processes are also used, in which servers automatically utilize a local network connection to download their operating software. There are standard protocols for implementing such automated provisioning.
The Preboot eXecution Environment (PXE) is an example of an existing protocol that can be used to automatically provision computers in a networked environment. In this environment, a computer has embedded preboot software that communicates over an available network connection to locate a configuration server such as a Dynamic Host Configuration Protocol (DHCP) server. If such a DHCP server is located, the computer communicates with the DHCP server to obtain an initial network configuration. The initial network configuration allows the computer to communicate using higher-level communication protocols such as the Internet Protocol (IP) and other related networking protocols.
The computer and DHCP server can also be configured to utilize PXE to specify operating software to be obtained and executed by the computer. Under PXE, the DHCP server indicates to the computer the identity or network address of a PXE server from which the computer is to obtain its operating software. In response to receiving this information, the computer establishes communications with the identified PXE server, downloads the proffered software, and executes it. This process allows large numbers of computer servers to be provisioned automatically, without significant human attention.